Quality of Service (QoS) management may be implemented in a system to optimize the use of system resources by a plurality of concurrent applications/processes/clients that request system resources. One example system, an operating system (OS), may use various scheduling algorithms to share common CPU, Disk, I/O and Network resources among concurrent applications and/or processes.
Demands by applications, processes and/or clients for resources may be characterized by their workloads on the system and can be modeled using parameters like an expected arrival rate. More detailed parameters like required CPU time and I/O throughput could also be considered. Applications, processes and/or clients sharing common demand characteristics can be aggregated into classes of demand types, to simplify the analysis and management of resource sharing strategies and their QoS effects. Similarly, resources and/or service provider capacities (for example, the ability to process client demands) may be characterized using parameters like an average service rate μ or the average time required for serving a unit of work.
QoS management is currently used in some systems to attempt to process high priority demands in a timely manner. Higher priority demands may be allocated a larger share of a service provider's capacity. Some systems may seek to allocate shared resources to meet concurrent demands. How well a system performs resource allocation can be characterized by Quality of Service (QoS) parameters, such as performance, scalability, availability and cost.